1 using System;
2 using System.Collections.Generic;
3 using System.ComponentModel;
4 using System.Drawing;
5 using System.Data;
6 using System.Linq;
7 using System.Text;
8 using System.Threading.Tasks;
9 using System.Windows.Forms;
10
11 namespace SoftQuanLyNhaHang.Views
12 {
13 public partial class uctNhaCungCap : UserControl
14 {
15 public uctNhaCungCap()
16 {
17 InitializeComponent();
18 }
19
20 public static uctNhaCungCap uctNCC = new uctNhaCungCap();
21
22 int _IdNhaCungCap = 0;
23 string _TrangThai = "SuDung";
24 DateTime _NgayTao = DateTime.Now;
25 string _HoVaTen = string.Empty;
26 string _SoDienThoai = string.Empty;
27 string _DiaChi = string.Empty;
28 string _TenCongTy = string.Empty;
29 string _Dc_Email = string.Empty;
30 DateTime _NgayThanhLap_NgaySinh = DateTime.Now;
31 string _AnhDaiDien = string.Empty;
32 string _GhiChu = string.Empty;
33
34 int _stt = 0;
35 int _tongSoBanGhi = 0;
36 int _pageSize = 30;
37 int _pageIndex = 1;
38
39
40 private void HienThiDanhSachNhaCungCap(int idNhaCungCap, string hoVaTen, string soDienThoai, string tenCongTy)
41 {
42
43
44 DataTable dtNCC = new DataTable();
45
46 dgvDanhSachNCC.Rows.Clear();
47 //Ẩn cột đầu tiên
48 dgvDanhSachNCC.RowHeadersVisible = false;
49 //-https://stackoverflow.com/questions/17404969/right-align-a-column-in-datagridview-doesnt-work
50 this.dgvDanhSachNCC.Columns["STT"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
51 this.dgvDanhSachNCC.Columns["STT"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
52 //this.dgvDanhSachNhapHang.Columns["STT"].SortMode = DataGridViewColumnSortMode.NotSortable;
53
54 this.dgvDanhSachNCC.Columns["TongMatHangCC"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
55 this.dgvDanhSachNCC.Columns["TongMatHangCC"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
56
57 this.dgvDanhSachNCC.Columns["TKNoNCC"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight;
58 this.dgvDanhSachNCC.Columns["TKNoNCC"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
59
60 this.dgvDanhSachNCC.Columns["Sua"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
61 this.dgvDanhSachNCC.Columns["Sua"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
62
63
64 if (chkDoiTac.Checked == true && chkKhongDt.Checked == true)
65 {
66 _TrangThai = "TatCa";
67 }
68 else
69 {
70 if (chkDoiTac.Checked == true)
71 {
72 _TrangThai = "SuDung";
73 }
74 else
75 {
76 _TrangThai = "Khong";
77 }
78 }
79
80
81 dtNCC = Controllers.NhaCungCapCtrl.FillDataSet_Gets_NhaCungCap_AllSearchCustom(idNhaCungCap, _TrangThai, DateTime.Now, hoVaTen, soDienThoai, "diaChi", tenCongTy, "diachiemail", DateTime.Now, "anhdaidien", "ghi chu", _pageSize, _pageIndex).Tables[0];
82
83 if (dtNCC.Rows.Count > 0)
84 {
85 _tongSoBanGhi = Int32.Parse(dtNCC.Rows[0]["TongSoBanGhi"].ToString());
86
87 double _tongmathang = 0;
88 //double _tknoncc = 0;
89
90 foreach (DataRow item in dtNCC.Rows)
91 {
92 _stt += 1;
93 int n = dgvDanhSachNCC.Rows.Add();
94
95 dgvDanhSachNCC.Rows[n].Cells["IdNhaCungCap"].Value = item["IdNhaCungCap"].ToString();
96 dgvDanhSachNCC.Rows[n].Cells["STT"].Value = _stt.ToString();
97
98 //TrangThai
99 dgvDanhSachNCC.Rows[n].Cells["TrangThai"].Value = item["TrangThai"].ToString();
100
101 //NgayTao
102 dgvDanhSachNCC.Rows[n].Cells["NgayTao"].Value = item["NgayTao"].ToString();
103
104 dgvDanhSachNCC.Rows[n].Cells["HoVaTen"].Value = item["HoVaTen"].ToString();
105 dgvDanhSachNCC.Rows[n].Cells["SoDienThoai"].Value = item["SoDienThoai"].ToString();
106 dgvDanhSachNCC.Rows[n].Cells["DiaChi"].Value = item["DiaChi"].ToString();
107
108 dgvDanhSachNCC.Rows[n].Cells["TenCongTy"].Value = item["TenCongTy"].ToString();
109
110 //Dc_Email
111 dgvDanhSachNCC.Rows[n].Cells["Dc_Email"].Value = item["Dc_Email"].ToString();
112
113 _tongmathang = CauHinhHeThong.Format_SoDeTinhToan(item["TongMatHangCC"].ToString(), false);
114 dgvDanhSachNCC.Rows[n].Cells["TongMatHangCC"].Value = CauHinhHeThong.Format_SoDeHienThi(_tongmathang, true);
115
116 //_tknoncc = CauHinhHeThong.Format_SoDeTinhToan(item["TKNoNCC"].ToString(), false);
117 //dgvDanhSachNCC.Rows[n].Cells["TKNoNCC"].Value = CauHinhHeThong.Format_SoDeHienThi(_tknoncc, true);
118
119 //GhiChu
120 dgvDanhSachNCC.Rows[n].Cells["GhiChu"].Value = item["GhiChu"].ToString();
121
122 //NgayThanhLap_NgaySinh
123 dgvDanhSachNCC.Rows[n].Cells["NgayThanhLap_NgaySinh"].Value = item["NgayThanhLap_NgaySinh"].ToString();
124
125 dgvDanhSachNCC.Rows[n].Cells["Sua"].Value = "Sửa";
126 }
127
128 }
129 else
130 {
131 _tongSoBanGhi = 0;
132 }
133
134 lblTongSoBanGhiHienThi.Text = CauHinhHeThong.HienThiSoBanGhiTuA_DenB(_pageSize, _pageIndex, _stt.ToString(), _tongSoBanGhi.ToString());
135 }
136
137 /*
138 //hiển thị sản phẩm theo id nhà cung cấp trong bảng kho
139 private void HienThiDanhSachSanPhamTheoIdNhaCungCap(int idKho, string masanpham, string tensanpham, int nhaCungCapId)
140 {
141 DataTable dtKho = new DataTable();
142
143 dgvDSSP_TheoIdNCC.Rows.Clear();
144 //Ẩn cột đầu tiên
145 dgvDSSP_TheoIdNCC.RowHeadersVisible = false;
146 //-https://stackoverflow.com/questions/17404969/right-align-a-column-in-datagridview-doesnt-work
147 this.dgvDSSP_TheoIdNCC.Columns["STT_DsKho"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
148 this.dgvDSSP_TheoIdNCC.Columns["STT_DsKho"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
149 //this.dgvDanhSachNhapHang.Columns["STT_DsKho"].SortMode = DataGridViewColumnSortMode.NotSortable;
150
151
152 //format header o day
153
154 dtKho = Controllers.KhoCtrl.FillDataSet_getKho_AllSearch(0, masanpham, tensanpham, 0, 0, 0, nhaCungCapId, 0, "anhdaidien", 0, "hansudung", "ngaysanxuat", DateTime.Now, "MoTa", 0, 0, 0, 0, 0, 0, 0, 0, DateTime.Now, DateTime.Now, "trangthai", DateTime.Now, "Chietkhautheo", 0, 0, _pageSize, _pageIndex).Tables[0];
155
156 if (dtKho.Rows.Count > 0)
157 {
158 int _sttKho = 0;
159 int _tongSoBanGhi_Kho = Int32.Parse(dtKho.Rows[0]["TongSoBanGhi"].ToString());
160
161 foreach (DataRow item in dtKho.Rows)
162 {
163 _sttKho += 1;
164 int nkho = dgvDSSP_TheoIdNCC.Rows.Add();
165
166 dgvDSSP_TheoIdNCC.Rows[nkho].Cells["IdKho"].Value = item["IdKho"].ToString();
167 dgvDSSP_TheoIdNCC.Rows[nkho].Cells["MaSanPham"].Value = item["MaSanPham"].ToString();
168 //dgvDSSP_TheoIdNCC.Rows[nkho].Cells["DonViTinhId"].Value = item["DonViTinhId"].ToString();
169 //dgvDSSP_TheoIdNCC.Rows[nkho].Cells["STT"].Value = _stt.ToString();
170 dgvDSSP_TheoIdNCC.Rows[nkho].Cells["TenSanPham"].Value = item["TenSanPham"].ToString();
171 //dgvDSSP_TheoIdNCC.Rows[nkho].Cells["NhaCungCapId"].Value = item["NhaCungCapId"].ToString();
172
173
174 }
175 }
176
177 }
178
179 */
180
181 private void uctNhaCungCap_Load(object sender, EventArgs e)
182 {
183 //panel1.VerticalScroll.Value = 0;
184
185 this.HienThiDanhSachNhaCungCap(0, txtHoVaTen_TimKiem.Text.Trim(), txtSoDienThoai_TimKiem.Text.Trim(), txtTenCongTy_TimKiem.Text.Trim());
186
187 //Hiển thị all chữ trong row datagridview
188 //--https://www.codeproject.com/Questions/667657/How-to-wrap-text-in-datagridview-column-using-vb-n
189 //dgvDanhSachNCC.RowsDefaultCellStyle.WrapMode = DataGridViewTriState.True;
190
191 //dgvDanhSachNCC.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCellsExceptHeaders;
192 //dgvDanhSachNCC.RowTemplate.MinimumHeight = 29;
193 }
194
195 private void linkLabelDanhSachNCC_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
196 {
197 _IdNhaCungCap = 0;
198 tabControlNCC.SelectedTab = tabPageDanhSachNCC;
199
200 lblThongBao.Text = "";
201 //-https://stackoverflow.com/questions/11029963/reset-the-panel-scroll-position-in-winform-application-c-sharp
202 //panel1.VerticalScroll.Value = 0;
203 // panel1.AutoScroll = true;
204 _pageSize = 30;
205 _pageIndex = 1;
206 _stt = 0;
207
208 this.HienThiDanhSachNhaCungCap(0, txtHoVaTen_TimKiem.Text.Trim(), txtSoDienThoai_TimKiem.Text.Trim(), txtTenCongTy_TimKiem.Text.Trim());
209
210
211 }
212
213 private void linkLabelThemMoiNCC_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
214 {
215 _IdNhaCungCap = 0;
216 //clear all textbox
217 this.ContronlTrongFormNCC("","","","","","","","SuDung");
218
219 tabControlNCC.SelectedTab = tabPageThemNhaCC;
220
221 lblThongBao.Text = "";
222 }
223
224 private void dgvDanhSachNCC_CellClick(object sender, DataGridViewCellEventArgs e)
225 {
226 //-https://stackoverflow.com/questions/1132471/how-to-reference-column-name-instead-of-e-columnindex-in-winform-datagridview-ev
227 if (dgvDanhSachNCC.Columns[e.ColumnIndex].Name == "Sua" && e.RowIndex != -1)
228 {
229 //-https://stackoverflow.com/questions/12762036/datagridview-cell-click-event
230 if (dgvDanhSachNCC.CurrentCell != null && dgvDanhSachNCC.CurrentCell.Value != null)
231 {
232 //update nha cung cap
233 _IdNhaCungCap = Int32.Parse(dgvDanhSachNCC.Rows[e.RowIndex].Cells["IdNhaCungCap"].Value.ToString());
234
235 string hovaten, sodienthoai, diachi, tencongty, dc_email, ngaythanhlap, ghichu, trangthai;
236
237 hovaten = dgvDanhSachNCC.Rows[e.RowIndex].Cells["HoVaTen"].Value.ToString();
238 sodienthoai = dgvDanhSachNCC.Rows[e.RowIndex].Cells["SoDienThoai"].Value.ToString();
239 diachi = dgvDanhSachNCC.Rows[e.RowIndex].Cells["DiaChi"].Value.ToString();
240 tencongty = dgvDanhSachNCC.Rows[e.RowIndex].Cells["TenCongTy"].Value.ToString();
241 dc_email = dgvDanhSachNCC.Rows[e.RowIndex].Cells["Dc_Email"].Value.ToString();
242 ngaythanhlap = dgvDanhSachNCC.Rows[e.RowIndex].Cells["NgayThanhLap_NgaySinh"].Value.ToString();
243 ghichu = dgvDanhSachNCC.Rows[e.RowIndex].Cells["GhiChu"].Value.ToString();
244 trangthai = dgvDanhSachNCC.Rows[e.RowIndex].Cells["TrangThai"].Value.ToString();
245
246 //hien thi thong tin vao form
247 this.ContronlTrongFormNCC(hovaten, sodienthoai, diachi, tencongty, dc_email, ngaythanhlap, ghichu, trangthai);
248
249 //Hien thi form them moi
250 tabControlNCC.SelectedTab = tabPageThemNhaCC;
251 }
252 }
253
254 /*
255 //Tổng số mặt hàng click
256 //-https://stackoverflow.com/questions/1132471/how-to-reference-column-name-instead-of-e-columnindex-in-winform-datagridview-ev
257 if (dgvDanhSachNCC.Columns[e.ColumnIndex].Name == "TongMatHangCC" && e.RowIndex != -1)
258 {
259 //-https://stackoverflow.com/questions/12762036/datagridview-cell-click-event
260 if (dgvDanhSachNCC.CurrentCell != null && dgvDanhSachNCC.CurrentCell.Value != null)
261 {
262 int nhacungcapId = Int32.Parse(dgvDanhSachNCC.Rows[e.RowIndex].Cells["IdNhaCungCap"].Value.ToString());
263
264 //Hiển thị sản phẩm theo id nhà cung cấp
265 HienThiDanhSachSanPhamTheoIdNhaCungCap(0, "", "", nhacungcapId);
266
267 //tab ds sp theo id ncc
268 tabControlNCC.SelectedTab = tabPageDSSanPhamTrongKhoTheoNCC;
269 }
270 }
271 */
272 }
273
274
275 private void ContronlTrongFormNCC(string hovaten, string sodienthoai, string diachi, string tencongty, string dc_email, string ngaythanhlap, string ghichu, string trangthai)
276 {
277 txtHoVaTen.Text = hovaten;
278 txtSoDienThoai.Text = sodienthoai;
279 txtDiaChi.Text = diachi;
280 txtTenCongTy.Text = tencongty;
281 txtEmail.Text = dc_email;
282 txtGhiChu.Text = ghichu;
283
284 if (trangthai == "SuDung")
285 {
286 rdoDoiTac.Checked = true;
287 }
288 else
289 {
290 rdoKhong.Checked = true;
291 }
292 }
293
294 private void btnLuu_Click(object sender, EventArgs e)
295 {
296 try
297 {
298 _HoVaTen = txtHoVaTen.Text.Trim();
299 if (string.IsNullOrEmpty(_HoVaTen))
300 {
301 MessageBox.Show("Họ tên không được để trống");
302 txtHoVaTen.Focus();
303 return;
304 }
305 }
306 catch { }
307
308 try
309 {
310 _SoDienThoai = txtSoDienThoai.Text.Trim();
311
312 if (string.IsNullOrEmpty(_SoDienThoai))
313 {
314 MessageBox.Show("Số điện thoại không được để trống");
315 txtSoDienThoai.Focus();
316 return;
317 }
318 }
319 catch { }
320
321 try
322 {
323 _NgayThanhLap_NgaySinh = DateTime.Parse(dateTimePickerNgaySinh.Text);
324 }
325 catch { }
326
327 try
328 {
329 _TenCongTy = txtTenCongTy.Text.Trim();
330 }
331 catch { }
332
333 try
334 {
335 _Dc_Email = txtEmail.Text.Trim();
336 }
337 catch { }
338
339 try
340 {
341 _AnhDaiDien = "?";
342 }
343 catch { }
344
345 try
346 {
347 _DiaChi = txtDiaChi.Text.Trim();
348 }
349 catch { }
350
351 try
352 {
353 _GhiChu = txtGhiChu.Text.Trim();
354 }
355 catch { }
356
357 if (rdoDoiTac.Checked == true)
358 {
359 _TrangThai = "SuDung";
360 }
361 else
362 {
363 _TrangThai = "Khong";
364 }
365
366 if (_IdNhaCungCap == 0)
367 {
368 _IdNhaCungCap = Controllers.NhaCungCapCtrl.InsertNhaCungCap(_IdNhaCungCap, _TrangThai, _NgayTao, _HoVaTen, _SoDienThoai, _DiaChi, _TenCongTy, _Dc_Email, _NgayThanhLap_NgaySinh, _AnhDaiDien, _GhiChu);
369
370 //hien thi lai danh sach
371 this.HienThiDanhSachNhaCungCap(0, "", "", "");
372
373 //goi sang tab danh sach
374 tabControlNCC.SelectedTab = tabPageDanhSachNCC;
375
376 }
377 else
378 {
379 Controllers.NhaCungCapCtrl.UpdateNhaCungCap(_IdNhaCungCap, _TrangThai, _NgayTao, _HoVaTen, _SoDienThoai, _DiaChi, _TenCongTy, _Dc_Email, _NgayThanhLap_NgaySinh, _AnhDaiDien, _GhiChu);
380
381 //MessageBox.Show("Update thành công!");
382
383 //hien thi lai danh sach
384 this.HienThiDanhSachNhaCungCap(0, "", "", "");
385
386 //tabControlNCC.SelectedTab = tabPageDanhSachNCC;
387 tabControlNCC.SelectedTab = tabPageDanhSachNCC;
388 //lblThongBao.Text = "Lưu thành công!";
389 }
390
391 }
392
393 private void btnTimKiem_Click(object sender, EventArgs e)
394 {
395
396 //hien thi lai danh sach
397 this.HienThiDanhSachNhaCungCap(0, txtHoVaTen_TimKiem.Text.Trim(), txtSoDienThoai_TimKiem.Text.Trim(), txtTenCongTy_TimKiem.Text.Trim());
398
399 //hien thi sang tab danh sach
400 tabControlNCC.SelectedTab = tabPageDanhSachNCC;
401 }
402
403 private void txtHoVaTen_TimKiem_TextChanged(object sender, EventArgs e)
404 {
405 _pageSize = 30;
406 _pageIndex = 1;
407 _stt = 0;
408
409 //hien thi lai danh sach
410 this.HienThiDanhSachNhaCungCap(0, txtHoVaTen_TimKiem.Text.Trim(), txtSoDienThoai_TimKiem.Text.Trim(), txtTenCongTy_TimKiem.Text.Trim());
411
412 //hien thi sang tab danh sach
413 tabControlNCC.SelectedTab = tabPageDanhSachNCC;
414 }
415
416 private void txtSoDienThoai_TimKiem_TextChanged(object sender, EventArgs e)
417 {
418 _pageSize = 30;
419 _pageIndex = 1;
420 _stt = 0;
421
422 //hien thi lai danh sach
423 this.HienThiDanhSachNhaCungCap(0, txtHoVaTen_TimKiem.Text.Trim(), txtSoDienThoai_TimKiem.Text.Trim(), txtTenCongTy_TimKiem.Text.Trim());
424
425 //hien thi sang tab danh sach
426 tabControlNCC.SelectedTab = tabPageDanhSachNCC;
427 }
428
429 private void txtTenCongTy_TimKiem_TextChanged(object sender, EventArgs e)
430 {
431 _pageSize = 30;
432 _pageIndex = 1;
433 _stt = 0;
434
435 //hien thi lai danh sach
436 this.HienThiDanhSachNhaCungCap(0, txtHoVaTen_TimKiem.Text.Trim(), txtSoDienThoai_TimKiem.Text.Trim(), txtTenCongTy_TimKiem.Text.Trim());
437
438 //hien thi sang tab danh sach
439 tabControlNCC.SelectedTab = tabPageDanhSachNCC;
440 }
441
442 private void btnHuy_Click(object sender, EventArgs e)
443 {
444 _IdNhaCungCap = 0;
445
446 tabControlNCC.SelectedTab = tabPageDanhSachNCC;
447 //clear all textbox
448 this.ContronlTrongFormNCC("", "", "", "", "", "", "", "SuDung");
449
450 }
451
452 private void btnTiep_Click(object sender, EventArgs e)
453 {
454 if (_tongSoBanGhi > (_pageSize * _pageIndex))
455 {
456 _pageIndex = _pageIndex + 1;
457
458 this.HienThiDanhSachNhaCungCap(0, txtHoVaTen_TimKiem.Text.Trim(), txtSoDienThoai_TimKiem.Text.Trim(), txtTenCongTy_TimKiem.Text.Trim());
459
460 }
461 else
462 {
463 return;
464 }
465 }
466
467 private void btnSau_Click(object sender, EventArgs e)
468 {
469 if ((_pageSize * _pageIndex) > _pageSize)
470 {
471 _pageIndex = _pageIndex - 1;
472 _stt = _pageSize * _pageIndex - _pageSize;
473
474
475 this.HienThiDanhSachNhaCungCap(0, txtHoVaTen_TimKiem.Text.Trim(), txtSoDienThoai_TimKiem.Text.Trim(), txtTenCongTy_TimKiem.Text.Trim());
476
477 }
478 else
479 {
480 _pageIndex = 1;
481 }
482 }
483
484 private void linkLabel1TimK_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
485 {
486 _pageSize = 30;
487 _pageIndex = 1;
488 _stt = 0;
489 //hien thi lai danh sach
490 this.HienThiDanhSachNhaCungCap(0, txtHoVaTen_TimKiem.Text.Trim(), txtSoDienThoai_TimKiem.Text.Trim(), txtTenCongTy_TimKiem.Text.Trim());
491
492 //hien thi sang tab danh sach
493 tabControlNCC.SelectedTab = tabPageDanhSachNCC;
494 }
495
496 private void btnXoa_Click(object sender, EventArgs e)
497 {
498 DialogResult dr = MessageBox.Show("Bạn có chắc chắn xóa?", "Xác nhận", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
499 if (dr == DialogResult.Yes)
500 {
501 Controllers.NhaCungCapCtrl.DeleteNhaCungCap(_IdNhaCungCap);
502
503 _pageSize = 30;
504 _pageIndex = 1;
505 _stt = 0;
506
507 //hien thi lai danh sach
508 this.HienThiDanhSachNhaCungCap(0, txtHoVaTen_TimKiem.Text.Trim(), txtSoDienThoai_TimKiem.Text.Trim(), txtTenCongTy_TimKiem.Text.Trim());
509
510 tabControlNCC.SelectedTab = tabPageDanhSachNCC;
511
512 }
513 else
514 {
515 return;
516 }
517
518 }
519
520
521 }
522 }